#ifndef PDF_PARSER_H
#define PDF_PARSER_H

#include <stdio.h>
#include <stdint.h>

// 字体信息结构
typedef struct {
    char* name;       // 字体名称
    char* base_font;  // 基础字体（如Helvetica）
    char* font_file;  // 字体文件数据（简化：存储内嵌字体数据）
    size_t font_size; // 字体数据大小
} PdfFont;

// 页面内容结构（扩展多页支持）
typedef struct {
    char* content;       // 文本内容
    size_t length;       // 长度
    PdfFont* fonts;      // 页面使用的字体
    int font_count;      // 字体数量
} PageContent;

// PDF文档结构（包含多页）
typedef struct {
    PageContent** pages;  // 所有页面
    int page_count;      // 总页数
    int current_page;    // 当前页码（从0开始）
} PdfDocument;

// 解析PDF文档（包含多页和字体信息）
PdfDocument* pdf_parse_document(FILE* fp);

// 切换页面（返回0成功，-1失败）
int pdf_navigate_page(PdfDocument* doc, int delta);  // delta: +1下一页, -1上一页

// 释放资源
void pdf_free_document(PdfDocument* doc);

#endif // PDF_PARSER_H